package com.gaohe.hotal.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.gaohe.common.annotation.Excel;
import com.gaohe.common.core.domain.BaseEntity;

/**
 * 客户入住对象 hot_guest_checkin
 * 
 * @author ruoyi
 * @date 2025-07-02
 */
public class HotGuestCheckin extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 客户入住id */
    private Long checkinId;

    /** 关联预订id */
    @Excel(name = "关联预订id")
    private Long reservationId;

    /** 房间id */
    @Excel(name = "房间id")
    private Long roomId;

    /** 入住类型(普通/钟点) */
    @Excel(name = "入住类型(普通/钟点)")
    private String checkType;

    /** 入住客户id */
    @Excel(name = "入住客户id")
    private Long guestId;

    /** 客户名 */
    @Excel(name = "客户名")
    private String name;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String phone;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String idCard;

    /** 入住金额 */
    @Excel(name = "入住金额")
    private BigDecimal pay;

    /** 实际入住时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际入住时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkInTime;

    /** 预计入住时长 */
    @Excel(name = "预计入住时长")
    private Long duration;

    /** 押金金额 */
    @Excel(name = "押金金额")
    private BigDecimal deposit;

    /** 是否续住(Y续住,N新入住) */
    @Excel(name = "是否续住(Y续住,N新入住)")
    private String isRenew;

    /** 关联新入住id(仅是否续住为Y有) */
    @Excel(name = "关联新入住id(仅是否续住为Y有)")
    private Long relatedCheckinId;

    /** 入住/续住操作人id */
    @Excel(name = "入住/续住操作人id")
    private String checkinUserId;

    /** 是否退房 */
    @Excel(name = "是否退房")
    private Long isCheckout;

    /** 实际退房时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际退房时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkoutTime;

    /** 额外费用 */
    @Excel(name = "额外费用")
    private String extraPay;

    /** 退房操作人 */
    @Excel(name = "退房操作人")
    private String checkoutUserId;

    /** 删除标志（0代表存在 2代表删除） */
    private Long delFlag;

    public void setCheckinId(Long checkinId) 
    {
        this.checkinId = checkinId;
    }

    public Long getCheckinId() 
    {
        return checkinId;
    }

    public void setReservationId(Long reservationId) 
    {
        this.reservationId = reservationId;
    }

    public Long getReservationId() 
    {
        return reservationId;
    }

    public void setRoomId(Long roomId) 
    {
        this.roomId = roomId;
    }

    public Long getRoomId() 
    {
        return roomId;
    }

    public void setCheckType(String checkType) 
    {
        this.checkType = checkType;
    }

    public String getCheckType() 
    {
        return checkType;
    }

    public void setGuestId(Long guestId) 
    {
        this.guestId = guestId;
    }

    public Long getGuestId() 
    {
        return guestId;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }

    public void setIdCard(String idCard) 
    {
        this.idCard = idCard;
    }

    public String getIdCard() 
    {
        return idCard;
    }

    public void setPay(BigDecimal pay) 
    {
        this.pay = pay;
    }

    public BigDecimal getPay() 
    {
        return pay;
    }

    public void setCheckInTime(Date checkInTime) 
    {
        this.checkInTime = checkInTime;
    }

    public Date getCheckInTime() 
    {
        return checkInTime;
    }

    public void setDuration(Long duration) 
    {
        this.duration = duration;
    }

    public Long getDuration() 
    {
        return duration;
    }

    public void setDeposit(BigDecimal deposit) 
    {
        this.deposit = deposit;
    }

    public BigDecimal getDeposit() 
    {
        return deposit;
    }

    public void setIsRenew(String isRenew) 
    {
        this.isRenew = isRenew;
    }

    public String getIsRenew() 
    {
        return isRenew;
    }

    public void setRelatedCheckinId(Long relatedCheckinId) 
    {
        this.relatedCheckinId = relatedCheckinId;
    }

    public Long getRelatedCheckinId() 
    {
        return relatedCheckinId;
    }

    public void setCheckinUserId(String checkinUserId) 
    {
        this.checkinUserId = checkinUserId;
    }

    public String getCheckinUserId() 
    {
        return checkinUserId;
    }

    public void setIsCheckout(Long isCheckout) 
    {
        this.isCheckout = isCheckout;
    }

    public Long getIsCheckout() 
    {
        return isCheckout;
    }

    public void setCheckoutTime(Date checkoutTime) 
    {
        this.checkoutTime = checkoutTime;
    }

    public Date getCheckoutTime() 
    {
        return checkoutTime;
    }

    public void setExtraPay(String extraPay) 
    {
        this.extraPay = extraPay;
    }

    public String getExtraPay() 
    {
        return extraPay;
    }

    public void setCheckoutUserId(String checkoutUserId) 
    {
        this.checkoutUserId = checkoutUserId;
    }

    public String getCheckoutUserId() 
    {
        return checkoutUserId;
    }

    public void setDelFlag(Long delFlag) 
    {
        this.delFlag = delFlag;
    }

    public Long getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("checkinId", getCheckinId())
            .append("reservationId", getReservationId())
            .append("roomId", getRoomId())
            .append("checkType", getCheckType())
            .append("guestId", getGuestId())
            .append("name", getName())
            .append("phone", getPhone())
            .append("idCard", getIdCard())
            .append("pay", getPay())
            .append("checkInTime", getCheckInTime())
            .append("duration", getDuration())
            .append("deposit", getDeposit())
            .append("isRenew", getIsRenew())
            .append("relatedCheckinId", getRelatedCheckinId())
            .append("checkinUserId", getCheckinUserId())
            .append("isCheckout", getIsCheckout())
            .append("checkoutTime", getCheckoutTime())
            .append("extraPay", getExtraPay())
            .append("checkoutUserId", getCheckoutUserId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
